local skel = fk.CreateSkill {
  name = "lb__jingsuo",
}

Fk:loadTranslationTable {
  ["lb__jingsuo"] = "径梭",
  --[":lb__jingsuo"] = "每回合限一次，当一名角色从牌堆外获得牌后，你可以令其展示获得的牌，然后你可以使用其中一张牌（无距离限制）。",

  --9.2
  --  [":lb__jingsuo"] = "每回合限一次，当一名角色从牌堆外获得牌后，你可以令其展示获得的牌，然后你可以使用其中一张牌（无距离限制），若不为本轮的第一次发动，该角色可以令你失去1点体力。",
  --9.16
  --[":lb__jingsuo"] = "当一名角色从牌堆外获得牌后，你可以令其展示获得的牌，然后你可以使用其中一张牌（无距离限制），若不为本轮的第一次发动，该角色可以令你失去1点体力。",
  --9.23
  --[":lb__jingsuo"] = "当一名角色从牌堆外获得牌后，你可以令其展示获得的牌，然后你可以使用一张展示牌（无距离限制），若不为本轮首次发动，其可以对你造成1点伤害。",
  [":lb__jingsuo"] = "每回合限一次，当一名角色从牌堆外获得牌后，你可以令其展示获得的牌，然后你可以使用一张展示牌（无距离限制），若不为本轮首次发动，其可以对你造成1点伤害。",


  ["#lb__jingsuo"] = "径梭：你可以令 %dest 展示获得的牌，然后你可以使用其中一张牌（无距离限制）",
  --["#lb__jingsuo_lose"] = "径梭：你可以令 %dest 失去1点体力", --9.2
  ["#lb__jingsuo_lose"] = "径梭：你可以对 %dest 造成1点伤害", --9.23

  ["$lb__jingsuo1"] = "朝着明天前进吧。",
  ["$lb__jingsuo2"] = "人多力量大。",
}

skel:addEffect(fk.AfterCardsMove, {
  anim_type = "control",
  can_trigger = function(self, event, target, player, data)
    --if player:hasSkill(skel.name) and (player:getMark("@lb__jingsuo-round") ~= 0 or player:usedSkillTimes(skel.name) == 0) then
    if player:hasSkill(skel.name) and player:usedSkillTimes(skel.name) == 0 then
      for _, move in ipairs(data) do
        local ids = {}
        if move.to and move.toArea == Card.PlayerHand then
          for _, info in ipairs(move.moveInfo) do
            if info.fromArea ~= Card.DrawPile then
              table.insert(ids, info.cardId)
            end
          end
          if #ids > 0 then
            event:setCostData(self, { cards = ids, to = move.to })
            return true
          end
        end
      end
    end
  end,
  on_cost = function(self, event, target, player, data)
    return player.room:askToSkillInvoke(player,
      { skill_name = skel.name, prompt = "#lb__jingsuo::" .. event:getCostData(self).to.id })
  end,
  on_use = function(self, event, target, player, data)
    local room = player.room
    local to = event:getCostData(self).to
    local cards = event:getCostData(self).cards
    to:showCards(cards)
    local extra_data = { bypass_distances = true }
    if to ~= player then
      extra_data.expand_pile = cards
    end
    room:askToUseRealCard(player, {
      pattern = cards,
      skill_name = skel.name,
      extra_data = extra_data,
      cancelable = true,
    })
    if player:usedSkillTimes(skel.name, Player.HistoryRound) > 1 and not player.dead and not to.dead and
        room:askToSkillInvoke(to, { skill_name = skel.name, prompt = "#lb__jingsuo_lose::" .. player.id }) then -- 9.2
      --room:loseHp(player, 1, skel.name)
      room:damage{
        from = to,
        to = player,
        damage = 1,
        skillName = skel.name,
      }
    end
  end,
})

return skel
